package cn.zjnu.service;

import cn.zjnu.domain.User;
import org.springframework.transaction.annotation.Transactional;

@Transactional
public interface LoginService {
    /*
        本接口提供用户登录、注册、修改密码的功能
        用户点击页面中的登录/注册/修改密码案件时，会分别调用实现下方接口的方法
     */

    /*
        1. 注册接口
            提供用户注册的功能
            接收并判断用户提交的用户名、密码信息是否合法
            如果合法：返回true；如果非法：返回false
     */
    public boolean signUp(User user);
    /*
        1.1 注册接口子功能-检查是否用户名重复
            接收并判断用户名是否重复
            如果重复：返回false；如果不重复：返回true
     */
    public boolean checkRename(User user);

    /*
        2. 登录接口
            提供用户登录的功能
            接收并判断用户提交的用户名、密码键值对是否存在于数据库
            如果存在：返回true;如果不存在：返回false
     */

    public boolean loginIn(User user);

    /*
        3.修改密码接口
            提供用户修改密码的功能
            接收并判断用户提交的用户名、密码键值对是否存在于数据库
            如果存在:
                判断修改的密码是否合法
                    如果合法: 返回true
                    如果非法：返回false
            如果不存在：
                返回false
     */

    public boolean changePassword(User before,User after);
}
